package com.cloudkinto.service.order.vo;

import cn.afterturn.easypoi.excel.annotation.Excel;
import cn.afterturn.easypoi.excel.annotation.ExcelCollection;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.cloudkinto.service.order.vo.rakuten.OrderRakutenPackageExcelExportVo;
import lombok.Data;

import java.util.Date;
import java.util.List;

@Data
public class OrderYahooExcelExportVo {

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @Excel(name = "订单编号")
    private String orderId;

    @Excel(name = "原始订单编号")
    private String originalOrderId;

    /**
     * 拆分源订单 ID
     */
    @Excel(name = "拆分源订单编号")
    private String parentOrderId;

    /**
     * 拆分后的订单ID
     */
    @Excel(name = "拆分后订单编号")
    private String childOrderId;

    /**
     * 下订单的日期和时间（在购物车中按下订单确认按钮的日期和时间）（例）2012-04-19T16:10:40
     */
    @Excel(name = "订单日期")
    private Date orderTime;

    /**
     * 上次更新订单信息的日期和时间。2012-04-19T16:10:40+09:00
     */
    @Excel(name = "更新订单日期")
    private Date lastUpdateTime;

    /**
     * 1 : 予約中2 : 処理中 3 : 保留 4 : キャンセル 5 :  完了
     */
    @Excel(name = "order_status", replace = {"预约中_1", "処理中_2", "保留_3", "キャンセル_4", "完了_5"})
    private String orderStatus;

    /**
     * 这是商店可以为订单信息独立设置的状态。
     */
    @Excel(name = "商店状态")
    private String storeStatus;

    /**
     * 买家评论
     */
    @Excel(name = "买家评论")
    private String buyerComments;

    /**
     * 卖家评论
     */
    @Excel(name = "卖家评论")
    private String sellerComments;

    /**
     * 店内备忘 是通过订单管理工具进入店铺时在店铺中的备忘录。
     */
    @Excel(name = "店内备忘")
    private String notes;

    /**
     * 支付状态	0：未付款 1：已存款
     */
    @Excel(name = "支付状态", replace = {"未付款_0", "已付款_1"})
    private String payStatus;

    /**
     * 1 : 決済申込 2 : 支払待ち 3 : 支払完了 4 : 入金待ち5 : 決済完了6 : キャンセル7 : 返金8 : 有効期限切れ9 : 決済申込中10 : オーソリエラー11 : 売上取消12 : Suicaアドレスエラー
     */
    @Excel(name = "settle_status", replace = {"決済申込_1", "支払待ち_2", "支払完了_3", "入金待ち_4", "決済完了_5", "キャンセル_6", "返金_7", "有効期限切れ_8", " 決済申込中_9", "オーソリエラー_10", "売上取消_11", "Suicaアドレスエラー_12"})
    private String settleStatus;

    /**
     * 入金处理备注
     */
    @Excel(name = "入金处理备注")
    private String payNotes;


    /**
     * 0 : 出荷不可1 : 出荷可2 : 出荷処理中3 : 出荷完了4 : 着荷完了
     */
    @Excel(name = "发货状态", replace = {"出荷不可_0", "出荷可_1", "出荷処理中_2", "出荷完了_3", "着荷完了_4"})
    private String shipStatus;

    @Excel(name = "发货方式")
    private String shipMethod;

    @Excel(name = "发货方式名称")
    private String shipMethodMame;

    /**
     * 配送希望日です。（YYYY-MM-DD）
     */
    @Excel(name = "配送希望日です")
    private Date shipRequestDate;

    /**
     * 配送希望時间 12:00～14:00など
     */
    @Excel(name = "配送希望時间")
    private String shipRequestTime;

    @Excel(name = "ship_notes")
    private String shipNotes;

    /**
     * 1000：その他 1001：ヤマト運輸 1002：佐川急便1003：日本郵便 1004：西濃運輸 5001：店頭受け取り
     */
    @Excel(name = "发货物流方式",replace = {"1000_その他","1001_ヤマト運輸","1002_佐川急便","1003_日本郵便"," 1004_西濃運輸","5001_店頭受け取り"})
    private String shipCompanyCode;

    @Excel(name = "receive_shop_code")
    private String receiveShopCode;

    /**
     * 交货单号 1
     */
    @Excel(name = "运输单号 1")
    private String shipInvoiceNumber1;

    /**
     * 运输单号 2
     */
    @Excel(name = "运输单号2")
    private String shipInvoiceNumber2;

    /**
     * 没有支票号码的原因	 NULL：（未注册状态） 101：对于直接从制造商等库存源发送的产品 102：对于不需要运输的产品103：对于在商店收到的产品
     * 104：对于从送货公司直接联系105：凭证编号由于运输方式未发出（无法追踪）
     */
    @Excel(name = "ship_invoice_number_empty_reason")
    private String shipInvoiceNumberEmptyReason;

    /**
     * 配送会社URL	 商店通过工具和 API 设置的运输公司的跟踪 URL。
     */
    @Excel(name = "ship_url")
    private String shipUrl;

    /**
     * 0：正常 1：今天的订单 2：明天的订单
     */
    @Excel(name = "arrive_type")
    private String arriveType;

    /**
     * 发货日期	(YYYY-MM-DD)
     */
    @Excel(name = "发货日期")
    private Date shipDate;

    @Excel(name = "到货日期")
    private Date arrivalDate;

    @Excel(name = "收货人姓名")
    private String shipName;

    /**
     * 更新者
     */
    @Excel(name = "operation_user")
    private String operationUser;

    /**
     * 送货邮政编码
     */
    @Excel(name = "送货邮政编码")
    private String shipZipCode;

    /**
     * 目的地县
     */
    @Excel(name = "目的地县")
    private String shipPrefecture;

    @Excel(name = "目的地城市")
    private String shipCity;

    @Excel(name = "目的地地址")
    private String shipAddress;

    /**
     * 送货电话号码
     */
    @Excel(name = "送货电话号码")
    private String shipPhoneNumber;

    @Excel(name = "送货EMG电话号码")
    private String shipEmgPhoneNumber;

    /**
     * 商店设定的费用（货到付款等）和 Yahoo! 结算结算费用不包括在内。
     */
    @Excel(name = "pay_charge")
    private Double payCharge;

    /**
     * 运费（免运费券折扣后的金额）
     */
    @Excel(name = "运费")
    private Double shipCharge;

    @Excel(name = "settle_amount")
    private Double settleAmount;

    /**
     * 使用的点数使用
     */
    @Excel(name = "使用的点数使用")
    private Double usePoint;

    /**
     * 礼券使用金额
     */
    @Excel(name = "礼券使用金额")
    private Double giftCardDiscount;

    /**
     * 小计--使用积分+礼券+费用--折扣+运费+调整金额--商城优惠券折扣金额-部分优惠使用金额--礼券使用金额
     */
    @Excel(name = "小计")
    private Double totalPrice;

    /**
     * 设备类型 1 = PC，2 = MB，3 = 智能手机，4 = 平板电脑
     */
    @Excel(name = "备类型 1 = PC，2 = MB，3 = 智能手机，4 = 平板电脑")
    private String deviceType;

    /**
     * 取消原因 100：取消 110：退货 120：未付款 130：地址不明 140：拒绝收货 150：联系失败 160：重复订单 170：无法付款检查 180：其他 300：错误订单 310：使用积分 忘记 320：忘记了使用优惠券 330：我在别处找到便宜的价格 340：运费很高
     * 350：我想更改收货地址 360：我想更改送货方式
     * 370：我想更改付款方式 380：信用卡无法使用
     * 200：支付方式便利 210：缺货 220：停产
     * 230：其他 0：取消原因 不适用 系统取消
     * 空白：订单未取消
     */
    @Excel(name = "cancel_reason")
    private String cancelReason;

    /**
     * 使用的优惠券信息
     */
    @Excel(name = "use_coupon_data")
    private String useCouponData;

    /**
     * 活动积分
     */
    @Excel(name = "campaign_points")
    private Integer campaignPoints;


    /**
     * 是否转发货
     */
    @Excel(name = "is_send_out")
    private Integer isSendOut;

    /**
     * 是否回传单号
     */
    @Excel(name = "is_upload_express")
    private Integer isUploadExpress;

    /**
     * 系统备注
     */
    @Excel(name = "system_memo")
    private String systemMemo;


    @ExcelCollection(name = "产品信息")
    private List<OrderYahooItemExcelExportVo> items;
}
